<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>用户管理系统-登录</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta http-equiv="Access-Control-Allow-Origin" content="*">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="format-detection" content="telephone=no">
    <link rel="stylesheet" href="lib/layui-v2.5.5/css/layui.css" media="all">
    <!--[if lt IE 9]>
    <script src="js/respond.min.js"></script>
    <script src="js/html5.min.js"></script>
    <![endif]-->
    <style>
        html, body {width: 100%;height: 100%;overflow: hidden}
        body {background: #1E9FFF;}
        body:after {content:'';background-repeat:no-repeat;background-size:cover;-webkit-filter:blur(3px);-moz-filter:blur(3px);-o-filter:blur(3px);-ms-filter:blur(3px);filter:blur(3px);position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;}
        .layui-container {width: 100%;height: 100%;overflow: hidden}
        .admin-login-background {width:360px;height:300px;position:absolute;left:50%;top:40%;margin-left:-180px;margin-top:-100px;}
        .logo-title {text-align:center;letter-spacing:2px;padding:14px 0;}
        .logo-title h1 {color:#1E9FFF;font-size:25px;font-weight:bold;}
        .login-form {background-color:#fff;border:1px solid #fff;border-radius:3px;padding:14px 20px;box-shadow:0 0 8px #eeeeee;}
        .login-form .layui-form-item {position:relative;}
        .login-form .layui-form-item label {position:absolute;left:1px;top:1px;width:38px;line-height:36px;text-align:center;color:#d2d2d2;}
        .login-form .layui-form-item input {padding-left:36px;}
        .captcha {width:60%;display:inline-block;}
        .captcha-img {display:inline-block;width:34%;float:right;}
        .captcha-img img {height:34px;border:1px solid #e6e6e6;height:36px;width:100%;}
    </style>
</head>
<body>
<div class="layui-container">
    <div class="admin-login-background">
        <div class="layui-form login-form">
            <form class="layui-form" action="">
                <div class="layui-form-item logo-title">
                    <h1>用户管理系统</h1>
                </div>
                <div class="layui-form-item">
                    <label class="layui-icon layui-icon-username" for="username"></label>
                    <input type="text" name="username" lay-verify="required|username" placeholder="用户名" autocomplete="off" class="layui-input" value="admin">
                </div>
                <div class="layui-form-item">
                    <label class="layui-icon layui-icon-password" for="password"></label>
                    <input type="password" name="password" lay-verify="required|password" lay-affix="eye" placeholder="密码" autocomplete="off" class="layui-input" value="admin123">
                </div>
                <div class="layui-form-item">
                    <label class="layui-icon layui-icon-vercode" for="captcha"></label>
                    <input type="text" name="captcha" lay-verify="required|captcha" placeholder="图形验证码" autocomplete="off" class="layui-input verification captcha" value="xszg">
                    <div class="captcha-img">
                        <img id="captchaPic" src="images/captcha.jpg">
                    </div>
                </div>
                <div class="layui-form-item">
                    <button class="layui-btn layui-btn layui-btn-normal layui-btn-fluid" lay-submit="" lay-filter="login">登 入</button>
                </div>
            </form>
        </div>
    </div>
</div>
<script src="lib/jquery-3.4.1/jquery-3.4.1.min.js" charset="utf-8"></script>
<script src="lib/layui-v2.5.5/layui.js" charset="utf-8"></script>
<script src="lib/jq-module/jquery.particleground.min.js" charset="utf-8"></script>
<script src="js/common.js?v=1.0.4" charset="utf-8"></script>
<script>
    layui.use(['form'], function () {
        var form = layui.form,
            layer = layui.layer;

        // 登录过期的时候，跳出ifram框架
        if (top.location != self.location) top.location = self.location;

        // 粒子线条背景
        $(document).ready(function(){
            $('.layui-container').particleground({
                dotColor:'#7ec7fd',
                lineColor:'#7ec7fd'
            });
        });

        // 自定义验证规则
        form.verify({
            // 验证用户名，且为必填项
            username: function(value, elem){
                if (!new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$").test(value)) {
                    return '用户名不能有特殊字符';
                }
                if (/(^_)|(__)|(_+$)/.test(value)) {
                    return '用户名首尾不能出现下划线';
                }
                if (/^\d+$/.test(value)) {
                    return '用户名不能全为数字';
                }
            },
            // 验证密码，且为必填项
            password: function(value, elem) {
                if (!/^[\S]{8,20}$/.test(value)) {
                    return '密码必须为8到20位的非空字符';
                }
                if (/^\d+$/.test(value)) {
                    return '密码不能全为数字';
                }
                if (!((/[a-z]/.test(value) && /[A-Z]/.test(value)) || 
                    (/[a-z]/.test(value) && /\d/.test(value)) || 
                    (/[a-z]/.test(value) && /[^\w\s]/.test(value)) || 
                    (/[A-Z]/.test(value) && /\d/.test(value)) || 
                    (/[A-Z]/.test(value) && /[^\w\s]/.test(value)) || 
                    (/\d/.test(value) && /[^\w\s]/.test(value)))) {
                    return '密码必须包含大小写字母、数字和特殊符号中的两种及以上';
                }
            },
        });

        // 进行登录操作
        form.on('submit(login)', function (data) {
            data = data.field;
            if (data.username == '') {
                layer.msg('用户名不能为空');
                return false;
            }
            if (data.password == '') {
                layer.msg('密码不能为空');
                return false;
            }
            if (data.captcha == '') {
                layer.msg('验证码不能为空');
                return false;
            }


            let username = data.username;
            let password = data.password;

            // 请求本地login接口
            $.ajax({
                url: serverApiUrl + "/auth/login",
                type: "post",
                contentType: "application/json",
                data: JSON.stringify({ username: username, password: password }),
                success: function(response) {
                    localStorage.setItem(userName, username);
                    localStorage.setItem(tokenKey, response.data.accessToken);
                    localStorage.setItem(refreshToken, response.data.refreshToken);
                    localStorage.setItem(EXPIRES, response.data.expires);
                    localStorage.setItem(ROLES, response.data.roles);

                    layer.msg('登录成功', function () {
                        
                    });

                    window.location = 'index.html?v=1.0.4';
                },
                error: function(xhr) {
                    var error = JSON.parse(xhr.responseText);

                    layer.msg('登录失败', function () {
                        
                    });
                }
            });

            
            return false;
        });
    });
</script>
</body>
</html>